<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/9/18
 * Time: 23:27
 */

namespace app\admin\controller;

/*
 * 分类管理
 */
use think\Exception;

class Category extends Base
{
    private $obj;
    public function _initialize()
    {
        $this->obj=model('Category');
    }

    /*
     * 列表,
     */
    public function index()
    {
        //获取子栏目，同时配置'url_common_param'       => true,才能获取二级分类
        $parentId = input('get.parent_id', 0, 'intval');
        //查询数据，填充到模版
        $categorys = $this->obj->getFirstCategorys($parentId);
        return $this->fetch('',[
            'categorys' => $categorys
        ]);
    }

    /*
     * 添加
     */
    public function add()
    {
        if (request()->isPost()){
            //获取数据，做数据校验
            $data=input('post.');
            $validate=validate('Category');
            if (!$validate->scene('add')->check($data)){
                $this->error($validate->getError());
            }

            //数据入库：新增操作
            $res=$this->obj->add($data);
            if(!$res) {
                $this->error('新增失败');
            }
            $this->success('新增成功');

        }

        //查询一级分类填充到模版
        $categorys=$this->obj->getNormalFirstCategory();
        return $this->fetch('',[
            'categorys' => $categorys
        ]);
    }

    /*
     * 编辑
     */
    public function edit($id)
    {
        if (intval($id)<1){
            $this->error('参数不合法');
        }

        if (request()->isPost()){
            //获取数据，做数据校验
            $data=input('post.');
            $validate=validate('Category');
            if (!$validate->scene('edit')->check($data)){
                $this->error($validate->getError());
            }

            //数据入库:更新操作
            $res=$this->obj->save($data,['id'=>intval($data['id'])]);
            if(!$res) {
                $this->error('更新失败');

            }
            $this->success('更新成功');
        }

        $category=$this->obj->get($id);
        //查询一级分类填充到模版
        $categorys=$this->obj->getNormalFirstCategory();
        return $this->fetch('',[
            'categorys' => $categorys,
            'category' => $category
        ]);
    }

    /*
     * 排序逻辑： 更新操作
     */
    public function listorder($id,$listorder)
    {
        //更新操作: 更新status，更新条件id,
        $res=$this->obj->save(['listorder'=>$listorder],['id'=>$id]);

        if(!$res) {
            $this->result($_SERVER['HTTP_REFERER'],0,'error');
        }
        $this->result($_SERVER['HTTP_REFERER'],1,'succes');
    }

    /*
     * 修改状态：更新操作
     */
    public function status() {
        //获取数据，做数据校验
        $data=input('param.');
        $validate=validate('Category');
        if (!$validate->scene('status')->check($data)){
            $this->error($validate->getError());
        }

        //更新操作: 更新status，更新条件id,
        $res=$this->obj->save(['status'=>$data['status']],['id'=>intval($data['id'])]);

        if($res) {
            $this->success('更新成功');
        }else {
            $this->error('更新失败');
        }

    }
}